<?php
if (preg_match ( "/".basename ( __FILE__ )."/", $_SERVER ['PHP_SELF'] )) {
	die ("<h1>Incorrect access</h1>You cannot access this file directly.");
}
class password extends Form {
	function password(){
		if(User::is_login()){
			$return = $this->changPassword();
		}
		else{
			Url::redirect('ticket');
		}
		echo $return;
	}
	function changPassword(){
        global $display;
        $oldPassword  	= FunctionLib::getParam('oldPassword');
        $newPassword  	= FunctionLib::getParam('newPassword');
        $reNewPassword  	= FunctionLib::getParam('reNewPassword');
		$active = URL::get('submit', '');
		if($active){
			if($oldPassword)
				$this->checkFormInput('Mật khẩu cũ','oldPassword',$oldPassword,'str','','',6);
			else
				$this->setFormError('','Chưa nhập mật khẩu!');
			if($newPassword)
				$this->checkFormInput('Mật khẩu mới','newPassword',$newPassword,'str','','',6);
			else
				$this->setFormError('','Chưa nhập mật khẩu mới!');
			if($reNewPassword)
				$this->checkFormInput('Mật khẩu nhập lại','reNewPassword',$reNewPassword,'str','','',6);
			else
				$this->setFormError('','Chưa nhập lại mật khẩu!');
			
			if(!$this->errNum){
				if($newPassword != $reNewPassword){
					$this->setFormError('','Mật khẩu mới không trùng nhau!');
				}
				else{
					$curUser = User::getUser(User::id(),true);
					$oldPassword = User::encode_password($oldPassword);
					if($oldPassword != $curUser['password']){
						$this->setFormError('','Sai mật khẩu!');
					}
					else{
						if(DB::update(T_USER_DEAL,array('password'=>User::encode_password($newPassword)),"id = ".User::id())){
							User::getUser(User::id(),false,true);
							Url::redirect('ticket');
							
						}
						else{
							$this->setFormError('','Có lỗi xảy ra!');
						}
					}
				}
			}
		}
		$display->add('msg',$this->showFormErrorMessages(1));
		$display->add('username',User::username());
		$return = $this->beginForm();
        $return .= $display->output('password',true,'password');
		$return .= $this->endForm();
		return $return;
    }
}
?>